package com;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

/*
给定一个只包括 '('，')'，'{'，'}'，'['，']'的字符串 s ，判断字符串是否有效。

有效字符串需满足：

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。


示例 1：

输入：s = "()"
输出：true
示例2：

输入：s = "()[]{}"
输出：true
示例3：

输入：s = "(]"
输出：false
示例4：

输入：s = "([)]"
输出：false
示例5：

输入：s = "{[]}"
输出：true

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Test {

    public static void main(String[] args) {

        List<String> param = new ArrayList<>();
        param.add("()");
        param.add("()[]{}");
        param.add("(]");
        param.add("([)]");
        param.add("{[]}");

        List<Boolean> answer = new ArrayList<>();
        answer.add(true);
        answer.add(true);
        answer.add(false);
        answer.add(false);
        answer.add(true);

        int total_case = param.size();
        int success_case = 0;
        com.solution.stack.Solution solution = new com.solution.stack.Solution();
//        com.solution.replace.Solution solution = new com.solution.replace.Solution();
        for ( int i = 0 ; i < total_case ; i++ ) {
            boolean result = solution.isValid(param.get(i));
            if ( result == answer.get(i) )
                success_case++;
        }

        DecimalFormat df = new DecimalFormat();
        df.setMaximumFractionDigits(2);
        df.setMinimumFractionDigits(2);
        String percentage = df.format((double) success_case / total_case * 100.00) + "%";
        System.out.println("测试案例通过率：" + percentage);

    }
}
